Перетворення типів даних

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерної техніки, автоматики та метрології
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2011
Тип роботи:
Звіт
Предмет:
Структури даних та алгоритми

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІНСТИТУТ КОМП’ЮТЕРНОЇ ТЕХНІКИ АВТОМАТИКИ ТА МЕТРОЛОГІЇ Кафедра ЕОМ ЗВІТ ЛАБОРАТОРНОЇ РОБОТИ №2 З ПРЕДМЕТУ: «Програмування. Частина III. Структури даних та алгоритми» ТЕМА: «Перетворення типів даних» ВИБІР ВАРІАНТУ: Завдання 1  х0 wchar_t  х1 unsigned int  х2 char  х3 char  х4 unsigned long int  х5 signed long int  х6 unsigned short int  х7 long double  х8 signed int  х9 unsigned short int  х10 float  х11 unsigned long int  Завдання 2  const int x_4= 0x0717; int x=x_4;  const double y_4=-7.17e-1; double y=y_4;  v2 w0  v7 w3   Львів – 2011 Мета роботи. Дослідження методів та засобів явного та неявного перетворення типів даних. Постановка задачі. Завдання 1: Визначити, які неявні перетворення типів будуть відбуватись при обчисленнях. З’ясувати, чи відбудуться втрати значимості даних. Хід міркувань підтвердити програмними результатами. В звіти пояснити кожне перетворення і метод, яким воно здійснено. wchar_t x0=0; unsigned int x1=17; char x2=2; char x3=3; unsigned long int x4=4; signed long int x5=5; unsigned short int x6=6; long double x7=7; signed int x8=8; unsigned short int x9=9; float x10=10; unsigned long int x11=11; /* 1 */ x1 = x1 – 0xFFFFFFFA; /* 2 */ x3 = ’a’ + x0 – x2; /* 3 */ x7 = x4 + x5 + x6 * 0.1; /* 4 */ x8 = x9 + x10 – x11*10; Завдання 2 Визначити, які явні і неявні перетворення типів будуть відбуватись. Результати обчислень підтвердити програмними результатами. В звіти пояснити кожне перетворення і кожний отриманий результат. const int x_4= 0x0717; const double y_4=-7.17e-1; int x=x_4; double y=y_4; char v2=*reinterpret_cast<char*> (&x) +1; printf("%d %x %c \n", v2,v2,v2); char v7=*reinterpret_cast<char*> (&x); printf("%d %x %c \n", *v7+1,*v7+2, *v7+3); char w0 =*(reinterpret_cast<char*>(&y)+2)+12; printf("%x %u %d \n", w0,w0,w0); short w3=*reinterpret_cast<short*>(&y) + 1; printf("%x %u %d \n", w3,w3,w3); Алгоритм розв’язання задачі. За індивідуальним завданням я розробила алгоритм розв’язання задачі. Цей алгоритм був реалізований у програмі, в якій спочатку підключаються потрібні для виконання програми бібліотеки, а саме stdio.h, conio.h, iostream. Після цього ініціалізовані усі потрібні змінні. Для кожної змінної властивий інший тип, який обирається згідно індивідуального варіанту. Після цього виконуються операції над змінними та виведення значень: /* 1 */ x1 = x1 - 0xFFFFFFFA; /* 2 */ x3 = 'a' + x0 - x2; /* 3 */ x7 = x4 + x5 + x6 * 0.1; /* 4 */ x8 = x9 + x10 - x11*10; cout << "x1= " <<x1<< endl << "x3= " <<x3<< endl << "x7= " <<x7<< endl << "x8= " <<x8<< endl <<endl; Наступним у програмі є задання нових зміннихта виконання над ними дій, після чого задане виведення отриманих значень: int x=x_4; double y=y_4; char v2=*reinterpret_cast<char*> (&x) +1; printf("%d %x %c \n", v2,v2,v2); char *v7=reinterpret_cast<char*> (&x); printf("%d %x %c \n", *v7+1,*v7+2, *v7+3); char w0 =*(reinterpret_cast<char*>(&y)+2)+12; printf("%x %u %d \n", w0,w0,w0); short w3=*reinterpret_cast<short*>(&y) + 1; printf("%x %u %d \n", w3,w3,w3); Система тестів Завдання 1. Розглянемо , як відбуваються перетворення в першому виразі: x1 = x1 – 0xFFFFFFFA unsigned int = unsigned int - int 0xFFFFFFFA ВПК: FA FF FF FF Літерал 0xFFFFFFFA приводиться до unsigned int. Метод: збереження бітів, старший біт втрачає функцію знакового біта. ВПК: FA FF FF FF FF FF FF FA = −6 10 unsigned int x1 = 17 10 ВПК: 11 00 00 00 Залишається unsigned int. x1 = 00 00 00 11 = 17 10 Результат: 17 – (-6) = 23 10 (unsigned int) ВПК: 17 00 00 00 Присвоюється без змін, бо обидва операнди типу unsigned in...
Антиботан аватар за замовчуванням

21.10.2013 21:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини